Index

Author

Oscar Vásquez-Bolaños

Felinos de Costa Rica

La siguiente compilación muestra una visualización de los avistamientos de las diferentes especies de felinos para Costa Rica a través de la plataforma Inaturalist.

```{r}
#| label: carga de paquetes para el procesamiento de los datos
#| warning: false
#| message: false
library(tidyverse)
library(DT)
library(plotly)
library(ggthemes)
setwd("C:/Users/oscar/Desktop/Tarea3")
```
```{r}
#| label: importacion de datos
#| warning: false
#| message: false
felinos <-
  read_delim(
    file = "C:/Users/oscar/Desktop/Tarea3/FELINOS.csv",
    col_select = c(
      "species",
      "stateProvince",
      "locality",
      "eventDate",
      "decimalLongitude",
      "decimalLatitude",
      "month"
    ) 
  )
```
```{r}
#| label: renombrar las columnas de interes
#| warning: false
#| message: false
felinos <-
  felinos |>
  rename(
    especies = species,
    provincia = stateProvince,
    localidad = locality,
    fecha = eventDate,
    long = decimalLongitude,
    lat = decimalLatitude,
    mes = month
  )

felinos
```
# A tibble: 190 × 7
   especies           provincia  localidad fecha                long   lat   mes
   <chr>              <chr>      <chr>     <dttm>              <dbl> <dbl> <dbl>
 1 Puma concolor      Puntarenas <NA>      2022-04-22 14:30:01 -83.6  8.46     4
 2 Panthera onca      Limón      <NA>      2022-10-09 18:40:00 -83.5 10.5     10
 3 Panthera onca      Guanacaste <NA>      2022-09-28 05:25:00 -85.7 10.8      9
 4 Leopardus tigrinus Guanacaste <NA>      2018-02-19 12:32:00 -84.8 10.3      2
 5 Puma yagouaroundi  Puntarenas <NA>      2022-01-23 15:05:00 -83.4  8.43     1
 6 Leopardus pardalis Puntarenas <NA>      2022-08-28 11:18:15 -85.1  9.86     8
 7 Puma yagouaroundi  Puntarenas <NA>      2019-03-22 10:04:00 -83.9  9.27     3
 8 Puma concolor      Puntarenas <NA>      2022-06-13 15:54:06 -83.5  8.55     6
 9 Puma concolor      Heredia    <NA>      2022-07-07 13:49:49 -84.1 10.3      7
10 Leopardus pardalis Puntarenas <NA>      2022-08-02 16:03:49 -83.2  8.81     8
# … with 180 more rows
```{r}
#| label: definicion de la columna fecha
#| warning: false
#| message: false

  felinos |>
  mutate(fecha = as.Date(fecha, format = "%d/%m/%Y"))
```
# A tibble: 190 × 7
   especies           provincia  localidad fecha       long   lat   mes
   <chr>              <chr>      <chr>     <date>     <dbl> <dbl> <dbl>
 1 Puma concolor      Puntarenas <NA>      2022-04-22 -83.6  8.46     4
 2 Panthera onca      Limón      <NA>      2022-10-09 -83.5 10.5     10
 3 Panthera onca      Guanacaste <NA>      2022-09-28 -85.7 10.8      9
 4 Leopardus tigrinus Guanacaste <NA>      2018-02-19 -84.8 10.3      2
 5 Puma yagouaroundi  Puntarenas <NA>      2022-01-23 -83.4  8.43     1
 6 Leopardus pardalis Puntarenas <NA>      2022-08-28 -85.1  9.86     8
 7 Puma yagouaroundi  Puntarenas <NA>      2019-03-22 -83.9  9.27     3
 8 Puma concolor      Puntarenas <NA>      2022-06-13 -83.5  8.55     6
 9 Puma concolor      Heredia    <NA>      2022-07-07 -84.1 10.3      7
10 Leopardus pardalis Puntarenas <NA>      2022-08-02 -83.2  8.81     8
# … with 180 more rows

Una vez seleccionados los datos de interés se generó una tabla dinámica con las especies de felino por localidad y fecha del reporte de este avistamiento (Tab. 1).

felinos|> 
  select(especies, provincia, localidad, fecha) |>
  datatable (options = list (
    pageLength = 5,
    language = list(url = '//cdn.datatables.net/plug-ins/1.10.11/i18n/Spanish.json')
  ))

Tabla 1. Registros de las especies de felinos por fecha y localidad.

felinos <-
  felinos |>
  mutate(year = as.numeric(format(fecha,'%Y'))) |>
  mutate(month = as.numeric(format(fecha,'%m'))) |> 
  arrange((month))|>
  mutate(day = as.numeric(format(fecha,'%d')))

Seguidamente se generó un gráfico de barras (Fig. 1) con la ocurrencia de las especies de felinos por mes a lo largo del año.

grafico_especies_mes <-
felinos |>
  ggplot(aes(x = mes, fill = especies))+
  scale_x_continuous(breaks = seq(1,12,1))+
  scale_x_continuous(breaks = seq(1,12,1),
                     labels = c("1" =
                    "Ene", "2" = "Feb",                     "3" = "Mar", "4" =
                    "Abr", "5" = "May", 
                    "6" = "Jun", "7" =
                    "Jul", "8" = "Ago",
                    "9" ="Sep", "10" =                     "Oct", "11" = 
                    "Nov", "12" = 
                    "Dic"))+
  geom_bar() +
  ggtitle("Registros mensuales por especie de felino") +
  xlab("Meses") +
  ylab("Observaciones") +
  labs(fill = "Especies") +
  theme_economist()

library(plotly)
# Gráfico de barras plotly
ggplotly(grafico_especies_mes) |> 
  config(locale = 'es')

Figura 1. Ocurrencia mensual de especies de felinos en Costa Rica.

Coordinate Reference System:
  User input: CR05 / CRTM05 
  wkt:
PROJCRS["CR05 / CRTM05",
    BASEGEOGCRS["CR05",
        DATUM["Costa Rica 2005",
            ELLIPSOID["WGS 84",6378137,298.257223563,
                LENGTHUNIT["metre",1]]],
        PRIMEM["Greenwich",0,
            ANGLEUNIT["degree",0.0174532925199433]],
        ID["EPSG",5365]],
    CONVERSION["Costa Rica TM 2005",
        METHOD["Transverse Mercator",
            ID["EPSG",9807]],
        PARAMETER["Latitude of natural origin",0,
            ANGLEUNIT["degree",0.0174532925199433],
            ID["EPSG",8801]],
        PARAMETER["Longitude of natural origin",-84,
            ANGLEUNIT["degree",0.0174532925199433],
            ID["EPSG",8802]],
        PARAMETER["Scale factor at natural origin",0.9999,
            SCALEUNIT["unity",1],
            ID["EPSG",8805]],
        PARAMETER["False easting",500000,
            LENGTHUNIT["metre",1],
            ID["EPSG",8806]],
        PARAMETER["False northing",0,
            LENGTHUNIT["metre",1],
            ID["EPSG",8807]]],
    CS[Cartesian,2],
        AXIS["northing (N)",north,
            ORDER[1],
            LENGTHUNIT["metre",1]],
        AXIS["easting (E)",east,
            ORDER[2],
            LENGTHUNIT["metre",1]],
    USAGE[
        SCOPE["Cadastre, engineering survey, topographic mapping (large and medium scale)."],
        AREA["Costa Rica - onshore and offshore east of 86°30'W."],
        BBOX[2.21,-86.5,11.77,-81.43]],
    ID["EPSG",5367]]

felinos3 <-
  st_as_sf(felinos, coords = c("long", "lat"))

st_crs(felinos3) <- 4326


leaflet() |>
  setView(# centro y nivel inicial de acercamiento
    lng = -84.19452,
    lat = 9.572735,
    zoom = 7) |>
  addTiles(group = "OpenStreetMap") |>
  addProviderTiles(providers$Esri.NatGeoWorldMap)|>
  addRasterImage(raster(altitud))|>
  addPolygons(
    # capa de provincias (polígonos)
    data = ASP,
    color = "black",
    fillColor = "transparent",
    stroke = TRUE,
    weight = 1.0
  ) |>
  addCircleMarkers(
    # capa de registros de presencia (puntos)
    data = felinos3,
    stroke = F,
    radius = 4,
    fillColor = 'blue',
    fillOpacity = 1,
    group = "Felinos",
    popup = paste(
      paste0("<strong>Especie: </strong>", felinos$especie),
      paste0("<strong>Localidad: </strong>", felinos$localidad),
      paste0("<strong>Fecha: </strong>", felinos$fecha)
    )
  ) |>
  addLayersControl(
    baseGroups = c("OpenStreetMap", "Esri.NatGeoWorldMap"),
    overlayGroups = c("Felinos", "altitud", "ASP")) |> # control de capas
  addResetMapButton() |> # botón de reinicio
  addSearchOSM() |> # búsqueda en OSM
  addMouseCoordinates() |> # coordenadas del puntero del ratón
  addScaleBar(position = "bottomleft", options = scaleBarOptions(imperial = FALSE)) |> # barra de escala
  addMiniMap(position = "bottomleft")  # mapa de ubicación
Warning: Unknown or uninitialised column: `especie`.

```